import matplotlib.pyplot as plt
import pandas as pd

# 读取 CSV 数据文件
data = pd.read_csv("./AlgorithmsInC/exercises/chapter1/Exercise1023.csv")

N_values = data["N"]
edges_counts = data["Edges"]

# 绘制折线图
plt.figure(figsize=(10, 6))  # 设置图形大小
plt.plot(N_values, edges_counts, marker='o', linestyle='-', markersize=4) # 绘制折线图，添加数据点标记

# 添加标题和轴标签
plt.title("Number of Edges Needed to Connect N Items (Weighted Quick Union)", fontsize=14)
plt.xlabel("Number of Items (N)", fontsize=12)
plt.ylabel("Number of Edges", fontsize=12)

# 添加网格线 (可选)
plt.grid(True, linestyle='--', alpha=0.7)

# 微调坐标轴刻度 (可选，让刻度更清晰)
plt.xticks(fontsize=10)
plt.yticks(fontsize=10)

# 显示图形
plt.tight_layout() # 自动调整子图参数，避免标题或标签重叠
plt.show()

# 可选：保存图形到文件
plt.savefig("./AlgorithmsInC/exercises/chapter1/Exercise1023.png") # 保存为 PNG 图片
# plt.savefig("edges_plot.pdf") # 保存为 PDF 矢量图